//
//  JKOCRealmDeleteModelTests.m
//  JKOCRealmTests
//
//  Created by 王冲 on 2019/2/26.
//  Copyright © 2019年 JK科技有限公司. All rights reserved.
//

#import <XCTest/XCTest.h>
#import <Realm/Realm.h>
#import "Student.h"
@interface JKOCRealmDeleteModelTests : XCTestCase

@end

@implementation JKOCRealmDeleteModelTests

#pragma mark 删除指定的对象
-(void)testDeleteModel1{
    
    // 根据主键获取模型
    Student *student = [Student objectForPrimaryKey:@2];
    // 通过sql 语句查询模型：因为根据名字查询的结果可能多个模型
    // RLMResults *results2 = [Student objectsWhere:@"studentName= '二傻'"];
    // 只删除结果的第一个的话，获取第一个模型
    // Student *student =  results2.firstObject;
    
    RLMRealm *realm = [RLMRealm defaultRealm];
    
    // 删除单个模型
    [realm transactionWithBlock:^{
        
        [realm deleteObject:student];
    }];
    
    
 
}
    
#pragma mark 删除查询出来模型中所有数据
-(void)testDeleteModel2{
    
    // 通过sql 语句查询模型：因为根据名字查询的结果可能多个模型
    RLMResults *results2 = [Student objectsWhere:@"studentName= '二傻'"];
    // 只删除结果的第一个的话，获取第一个模型
    // Student *student =  results2.firstObject;
    
    RLMRealm *realm = [RLMRealm defaultRealm];
    
    // 删除查询出来的 模型 数组
    [realm transactionWithBlock:^{
        
        [realm deleteObjects:results2];
    }];
}
    
#pragma mark 删除所有realm里面所有的模型
-(void)testDeleteModel3{
    
    RLMRealm *realm = [RLMRealm defaultRealm];
    
    [realm transactionWithBlock:^{
        
        [realm deleteAllObjects];
    }];
    
}
    
#pragma mark 删除某一特定类型的模型所有数据，如删除 `Student` 模型的所有数据
-(void)testDeleteModel4{
    
    // 获取 Student 模型的所有数据
    RLMResults *results = [Student allObjects];
    RLMRealm *realm = [RLMRealm defaultRealm];
    // 在事务里面删除模型里面的所有数据
    [realm transactionWithBlock:^{
        [realm deleteObjects:results];
    }];
}
    
    
@end
